<extend name="Public/base" />

<block name="style">
<link href="__ADDONROOT__/css/base.css" rel="stylesheet" type="text/css">
<php>
if(C('COLOR_STYLE')=='blue_color'){
echo '<link href="__STATIC__/bootstrap/2.x/lib/datetimepicker/css/datetimepicker_blue.css" rel="stylesheet" type="text/css">';
}else{
echo '<link href="__STATIC__/bootstrap/2.x/lib/datetimepicker/css/datetimepicker.css" rel="stylesheet" type="text/css">';
}
</php>
<link href="__STATIC__/bootstrap/2.x/lib/datetimepicker/css/dropdown.css" rel="stylesheet" type="text/css">
</block>

<block name="body">
	<div class="main-title cf">
		<h2>{$data?'编辑':'新增'}计划</h2>
	</div>

	<!-- 标签页导航 -->
	<div class="tab-wrap">
		<div class="tab-content">
			<!-- 表单 -->
			<form id="task-form" action="__SELF__" method="post" class="form-horizontal doc-modal-form">
				<!-- 基础 -->
				<div id="tab1" class="tab-pane in tab1">
                    <notempty name="data">
                    <div class="form-item cf">
                            <label class="item-label">ID: {$data['id']}</label>
                            <input type="hidden" class="text input-mid" name="id" value="{$data['id']}">
					</div>
                    </notempty>
                    <div class="form-item cf">
                    <label class="item-label">计划名称<span class="check-tips">（计划名称。不填写则默认为 "计划-ID" ）</span></label>
                        <div class="controls">
                            
                            <input type="text" class="text input-large" name="title" value="">
                        </div>
					</div>
					<div class="form-item cf">
						<label class="item-label">执行方法/函数
                        <span class="check-tips">（计划任务执行的函数）</span>
                        </label>
						<div class="controls">
                        <input type="hidden" class="text input-mid" name="task_to_run" value="">
                        方法类型：
                        <select id="task-to-run-layer">
                            <option value="Model">模型(Model)</option>
                            <option value="Controller">控制器(Controller)</option>
                            <option value="Function">函数(Function)</option>
                            <option value="CUrl-Get">CURL 网址(GET)</option>
                            <option value="CUrl-Post">CURL 网址(POST)</option>
                            <option value="Api">接口(API)</option>
                            <option value="Util">工具(Util)</option>
                            <option value="Widget">部件(Widget)</option>
                            <option value="Logic">逻辑(Logic)</option>
                            <option value="Service">服务(Service)</option>
                        </select>
                        &nbsp;资源地址：
                        <input type="text" class="text input-large" id="task-to-run-res" placeholder="[格式] 资源://模块/控制器/操作" value="">
                        &nbsp;附带参数：
                        <input type="text" class="text input-default" id="task-to-run-param" placeholder="[格式] a=1&b=2&c=3" value="">
						</div>
					</div>
                    	<div class="form-item cf">
						<label class="item-label">开始时间 -- 结束时间
                        <span class="check-tips">（任务启止时间，不指定结束时间则计划永久有效。格式如：2015-02-09 21:50）</span>
                        </label>
						<div class="controls">
							<input type="text"  id="start_datetime" class="text input-mid" name="start_datetime" value=""> -- <input type="text"  id="end_datetime" class="text input-mid " name="end_datetime" value="">
						</div>
					</div>
					<div class="form-item cf">
						<label class="item-label">任务周期（类型）
                        <span class="check-tips">（执行任务的周期）</span>
                        </label>
						<div class="controls">	
                            <select name="task_type" id="task_type" >
                            <option value="ONCE" selected="selected" data-text="once" data-type="type-1">只执行一次</option>
                            <option value="MINUTE" data-text="分钟(1-1439)" data-type="type-2">按分执行</option>
                            <option value="HOURLY" data-text="小时(1-23)" data-type="type-2">按时执行</option>
                            <option value="DAILY" data-text="天(1-365)" data-type="type-2">按日执行</option>
                            <option value="WEEKLY" data-text="周(1-52)" data-type="type-3">按周执行</option>
                            <option value="MONTHLY" data-text="个月(1-12)" data-type="type-4">按月执行</option>
                            <option value="MONTHLY-FIRST" data-text="FIRST" data-type="type-5">按月的第一周执行</option>
                            <option value="MONTHLY-SECOND" data-text="SECOND" data-type="type-5">按月的第二周执行</option>
                            <option value="MONTHLY-THIRD" data-text="THIRD" data-type="type-5">按月的第三周执行</option>
                            <option value="MONTHLY-FOURTH" data-text="FOURTH" data-type="type-5">按月的第四周执行</option>
                            <option value="MONTHLY-LASTDAY" data-text="LASTDAY" data-type="type-6">按月的最后一天执行</option>
                            </select>
						</div>
					</div>
					<div class="form-item cf hidden" id="modifier-div">
						<label class="item-label">执行频率（间隔）
                        <span class="check-tips">（任务执行的时间间隔。默认为1个任务周期）</span>
                        </label>
						<div class="controls">
							<input type="text" class="text input-mid" name="modifier" data-value="" value="">&nbsp;<font id="modifier-unit"></font> 执行一次
						</div>
					</div>
					<div class="form-item cf hidden" id="daylist-div">
                     
                     <span id="month-day-box" > 
                         <label class="item-label">
                         指定月的一天或多天
                         <span class="check-tips">（指定月的一天或多天。如果当月只有28天，则大于28日的都会在28日执行。）</span>
                         </label>
                         <div class="date_tab_box" >
                                 <!--指定月的一天或多天-->
                          </div> 
                     </span>
                     
                     <span id="weekly-box" > 
                         <label class="item-label">
                         指定周的一天或多天<span class="check-tips">（指定周的一天或多天。）</span>
                         </label>
                         <div class="date_tab_box" >
                               <!--指定周的一天或多天-->
                          </div> 
                       </span>
                       
					</div> 
                   
                    
					<div class="form-item cf hidden" id="month-div">
                    
                         <span id="month-box">
                             <div class="controls">
                               
                                <label class="item-label">
                                    指定一年中的一个月或多个月
                                    <span class="check-tips">
                                    (指定一年中的一个月或多个月。不选则,默认为每个月。)
                                    </span>
                                </label>
                              </div>   
                             <div class="date_tab_box">
                                     <!--指定一年中的一个月或多个月-->
                             </div>
                         </span>
                       
                      </div>
   
					<div class="form-item cf">
						<label class="item-label">简介<span class="check-tips">（对计划任务的简要描述）</span></label>
						<div class="controls">
                        <label class="textarea">
							<textarea rows="3" cols="54" name="memo" value=""></textarea>
                        </label>
						</div>
					</div>																														

				</div>

				<!-- 按钮 -->
				<div class="form-item cf">
					<label class="item-label"></label>
					<div class="controls edit_sort_btn">
						<button class="btn submit-btn no-refresh" type="submit">确 定</button>
                        <button class="btn btn-return" type="reset">重置</button>
						<a class="btn btn-return" href="javascript:history.go(-1)">返 回</a>
					</div>
				</div>
			</form>
		</div>
	</div>
</block>
<block name="script">
<script type="text/javascript" src="__STATIC__/bootstrap/2.x/lib/datetimepicker/js/bootstrap-datetimepicker.min.js"></script>
<script type="text/javascript" src="__STATIC__/bootstrap/2.x/lib/datetimepicker/js/locales/bootstrap-datetimepicker.zh-CN.js" charset="UTF-8"></script>
<script type="text/javascript" charset="utf-8">
{/*编辑时返回的JSON数据*/}
var EditData={$data?json_encode($data):'null'};

+$(function(){
			
	var _timer=null;
	
	function _update_alert(_info,_class){
		
		if(_timer) clearTimeout(_timer);
		
		_timer=setTimeout(function(){
								  
			updateAlert('default');
			
		},5000);
		
		updateAlert(_info,_class);
		
	}
		   
	$(document)
	.ajaxStart(function(){
		$("button:submit").attr("disabled", true);
	})
	.ajaxStop(function(){
		$("button:submit").attr("disabled", false);
	});
	
	$("#task-form").submit(function(){
									
		var self = $(this);
		
		var data=$("input[name='task_to_run']").val(($("#task-to-run-layer")
					.val())+"::"+($("#task-to-run-res").val())+"::"+($("#task-to-run-param").val())).val().split("::");
		
		if(!data[1]){
					
			_update_alert("请填写完整的执行方法（资源地址）!",'alert-error');
			
			return false;
		
		}
		
		var the_task_type=$("#task_type option:selected").data("type");
		
		//如果“按月的第N周执行”没有指定周的某一天则默认指定周一。
		if(the_task_type=="type-5"){
			
			$("#weekly-box input[class='checkbox-s'][value='Mon']").prop("checked",true);
			
		}
		
		//如果“按月的最后一天执行”没有指定月份，则默认指定每月。
		if(the_task_type=="type-6"&&!$("#month-box input[class='checkbox-s']:checked").length){
			
			$("#month-box input[type='checkbox']").prop("checked",true);
			
		}
				
		$.post(self.attr("action"), self.serialize(), success, "json");
		
		return false;
	
		function success(data){
			if(data.status){
				_update_alert(data.info,'alert-success');
				setTimeout(function(){window.location.href = data.url;},1500);
			} else {
				_update_alert(data.info,'alert-error');
			}
		}
	});

});

+$(function(){
							  
    $('#start_datetime').datetimepicker({
        format: 'yyyy-mm-dd hh:ii:ss',
        language:"zh-CN",
        minView:1,
        autoclose:true,
    });
	
    $('#end_datetime').datetimepicker({
        format: 'yyyy-mm-dd hh:ii:ss',
        language:"zh-CN",
        minView:1,
        autoclose:true,
    });
	
});	

+$(function(){
	
	/*按选项隐藏表单项*/
	
	var _hider=$("<div></div>");
	
	var _dayer=$("#daylist-div")
	
	var _monther=$("#month-div");
	
	var _month_box=$("#month-box");	
	
	var _weekly_box=$("#weekly-box");
	
	var _month_day_box=$("#month-day-box");
		   
	var data_list={
		weekly:{
			value:['Mon','Tue','Wed','Thu','Fri','Sat','Sun'],
			name:['周一','周二','周三','周四','周五','周六','周日']
			},
		month:{
			value:['Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec'],
			name:['一月','二月','三月','四月','五月','六月','七月','八月','九月','十月','十一月','十二月']
			}
	};
	
	//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++日期选项构建+++++++++++++++++++++++++++++++++++++++++++++++++++++++
	   
	function checkbox_builder(type){
		
		switch(type){
			
			case "day":
			
			if(!_month_day_box.data("builded")){; 
				
				_month_day_box.find(".date_tab_box").append('<label><input class="checkbox-s-all" type="checkbox"><font>每天</font></label>');
				
				for(var i=1;i<=31;i++){
					
					_month_day_box.find(".date_tab_box")
					.append('<label><input class="checkbox-s" type="checkbox" name="daylist[]" value="'+i+'" ><font>'+i+'</font></label>')
					
				}
				
				_month_day_box.data("builded",true);
				
			}
			
			break;
			
			case "weekly":
			
			if(!_weekly_box.data("builded")){
			
				_weekly_box.find(".date_tab_box").append('<label><input class="checkbox-s-all" type="checkbox"><font>每周</font></label>');
				
				for(var i in data_list['weekly']['value']){
					
					_weekly_box.find(".date_tab_box").append('<label><input class="checkbox-s" type="checkbox" name="daylist[]" value="'
																+data_list['weekly']['value'][i]+'" ><font>'+data_list['weekly']['name'][i]+'</font></label>')
					
				}
				
				_weekly_box.data("builded",true);
			
			}
			
			break;
			
			case "month":
			
			if(!_monther.data("builded")){
				
				_monther.find(".date_tab_box").append('<label><input class="checkbox-s-all" type="checkbox"><font>每月</font></label>');
				
				for(var i in data_list['month']['value']){
					
					_monther.find(".date_tab_box").append('<label><input class="checkbox-s" type="checkbox" name="month[]" value="'
															+data_list['month']['value'][i]+'" ><font>'+data_list['month']['name'][i]+'</font></label>')
					
				}
				
				_monther.data("builded",true);
			
			}
			
			break;
			
		}
		
	}	
	
	//编辑时将PHP返回的数据填充到表单
	
	function form_data_init(){
		
		if(!EditData) return ;
		
		$.each(EditData,function(n,v){
			
			if(n=='daylist'||n=='month') return;
			
			$("[name='"+n+"']").val(v);
			
		});
		
		toggle_select_type(true);
		
		var task_to_run=EditData["task_to_run"].split("::");
		
		$("#task-to-run-layer").val(task_to_run[0]);
		
		$("#task-to-run-res").val(task_to_run[1]);
		
		$("#task-to-run-param").val(task_to_run[2]);
		
		function checkbox_deal(name){
			
			if(EditData[name]){
				
				if(EditData[name]!="*"){
				
				$.map(EditData[name].split(","),function(v){
				
				$("input[name='"+name+"[]'][value='"+v+"']").prop("checked",true);
				
				});
				
				}else{
					
					$("#"+name+"-div input[name='"+name+"[]'],#"+name+"-div input.checkbox-s-all").prop("checked",true);
					
				}
				
			}
		
		}
		
		checkbox_deal("month");
		
		checkbox_deal("daylist");
		
	}
	
	//根据任务计划类型隐藏表单项
	
	function switch_form(o){
				
		var type=$(o).data("type");

		if(type=="type-5"||type=="type-3"){
			
			$("#daylist-div,#weekly-box").show();$("#month-day-box").hide();
			
		}else{
			
			$("#daylist-div,#month-day-box").show();$("#weekly-box").hide();
			
		}

		switch(type){
			
			case "type-1":
			
			$("#month-div,#daylist-div,#modifier-div").hide();
			
			break;
			
			case "type-2":
			
			$("#modifier-div").show();$("#month-div,#daylist-div").hide();
			
			break;
			
			case "type-3":
			
			$("#month-div").hide();$("#daylist-div,#modifier-div").show();
			
			break;
			
			case "type-4":
			
			$("#month-div,#daylist-div,#modifier-div,#month-day-box").show();$("#weekly-box").hide();
			
			break;
			
			case "type-5":
			
			$("#modifier-div").hide();$("#month-div,#daylist-div").show();
			
			break;
			
			case "type-6":
			
			$("#daylist-div,#modifier-div").hide();$("#month-div").show();
			
			break;
			
		}
				
	}
	
	//*************************
	
	function toggle_select_type(is_init){
		
		var o=$("#task_type option:selected");
		
		var type=o.data("type");
		
		if(type=="type-1"||type=="type-2"){
			
			_weekly_box.appendTo(_hider);
			
			_month_box.appendTo(_hider);
			
			_month_day_box.appendTo(_hider);
		
		}
				
		if(type=="type-5"||type=="type-3"){
			_weekly_box.appendTo(_dayer);
			checkbox_builder("weekly");
		}else{
			_weekly_box.appendTo(_hider);
		}
		
		if(type=="type-4"||type=="type-5"||type=="type-6"){
			_month_box.appendTo(_monther);
			checkbox_builder("month");
		}else{
			_month_box.appendTo(_hider)
		}
		
		if(type=="type-4"){
			_month_day_box.appendTo(_dayer);
			checkbox_builder("day");
		}else{
			_month_day_box.appendTo(_hider);
		}
		
		$("#modifier-unit").text(o.data("text"));
		
		(is_init!=true)&&$("input[name='modifier']").val((type=="type-5"||type=="type-6")?$(o).data("text"):"");
		
		switch_form(o);
				
	}
	
	//初始化
			
	form_data_init();
	
	$("#task-form").show();
	
	$("#task_type").change(toggle_select_type);
	
	//***************************************************全选的实现（checkbox）
	
	$(document).on("click",".checkbox-s-all",function(){
		$(this).parent().parent().find("input[class='checkbox-s']").prop("checked", this.checked);
	});
	
	$(document).on("click",".checkbox-s",function(){
		var option =$(this).parent().parent().find("input[class='checkbox-s']");
		option.each(function(i){
			if(!this.checked){
				$(this).parent().parent().find("input[class='checkbox-s-all']").prop("checked", false);
				return false;
			}else{
				$(this).parent().parent().find("input[class='checkbox-s-all']").prop("checked", true);
			}
		});
	});
	
});

</script>
</block>

